Automated configuration of network device ports

ABSTRACT

Methods and devices are provided for identifying end devices and automatically configuring associated network settings. Preferred implementations of the invention do not require users to manually identify connection types (e.g., RFID, IPphone, manufacturing device, etc.) or to manually configure the network device. Accordingly, such implementations allow automatic switch configuration, even for devices that use inconsistent protocols and/or protocols that are not well known. Some methods of the invention employ DHCP options combined with traffic snooping to identify devices and automatically apply appropriate switch port configuration.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 60/570,999 (attorney docket number CISCP378P), entitled “Methods and Devices for Uniquely Provisioning RFID Devices” and filed on May 13, 2004, which is hereby incorporated by reference for all purposes. This application is related to U.S. patent application Ser. No. 10/866,506, (attorney docket number CISCP376), entitled “Methods and Devices for Uniquely Provisioning RFID Devices” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/866,507, (attorney docket number CISCP377), entitled “Methods and Devices for Locating and Uniquely Provisioning RFID Devices” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/866,285, (attorney docket number CISCP378), entitled “Methods and Devices for Assigning RFID Device Personality” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/896,410, filed Jul. 21, 2004 and to U.S. patent application Ser. No. 11/010,089, (attorney docket number CISCP393), entitled “Methods and Devices for Providing Scalable RFID Networks” and filed on Dec. 9, 2004 (collectively, the “Cross-Referenced Applications”), all of which are hereby incorporated by reference for all purposes.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates the configuration of devices in a network.

2. Description of the Related Art

It is becoming commonplace for devices, including but not limited to RFID readers, RFID printers, VoIP telephones and devices used in manufacturing, to be deployed in large numbers within some networks. These devices often have unique characteristics, such as traffic type, bandwidth requirements, security demands, etc. Accordingly, such devices require specific network configurations, e.g., quality of service (“QoS”), security settings, VLANs or VSANs, etc. to properly support their desired functionality.

FIG. 1 illustrates a portion of a network 100, in which network device 105 (in this example, a Catalyst™ switch provided by Cisco Systems, Inc.) is connected to a plurality of devices, including RFID reader 110. In this example, RFID reader 110 is connected to port 120 via a fast Ethernet connection. For each port of network device 105, a variety of attributes may be configured, such as QoS, security, port speed, description, etc.

Within network 100, a large number of devices and associated network devices may be deployed. In general, it is a tedious and time-consuming process for users to deploy devices and to manage the associated infrastructure components, such as switches and other network devices. For example, the process of configuring switch port settings is currently a manual process, in which each desired attribute must be individually selected and enabled for a port.

This manual configuration process is currently inhibiting the deployment of large-scale RFID networks, manufacturing device networks, etc. It would be desirable to provide improved methods and devices that overcome at least some limitations of the prior art.

SUMMARY OF THE INVENTION

Methods and devices are provided for identifying end devices and automatically configuring associated network settings. Preferred implementations of the invention do not require users to manually identify connection types (e.g., RFID, IPphone, manufacturing device, etc.) or to manually configure the network device. Accordingly, such implementations allow automatic switch configuration, even for devices that use inconsistent protocols and/or protocols that are not well known.

Some methods of the invention employ DHCP options combined with traffic snooping to identify devices and automatically apply appropriate switch port configuration. Some such implementations of the invention trigger Cisco Systems' SmartPorts™ software to configure ports of network devices. Some aspects of the SmartPorts software are described in U.S. patent application Ser. No. 10/896,410, filed Jul. 21, 2004, which has been incorporated herein by reference. However, the present invention is not limited to implementation via SmartPorts™; any convenient software for the automated configuring of network device ports may be used in accordance with the present invention.

Some implementations of the invention provide a method for establishing network device port settings. The method includes the steps of receiving a DHCPDISCOVER request from a device and of determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of a network device on which the DHCPDISCOVER request was first received.

The method may also include the step of applying the appropriate macro when it is determined to be available. The method preferably includes the step of determining whether the port has already been configured in a manner appropriate for the device.

The determining step may involve determining a device personality, identifying the device and/or examining at least one DHCP option or other component of the DHCPDISCOVER request. The “other component” could be, for example, one or more parts of the DHCP message header. The determining step may or may not be performed by the network device on which the DHCPDISCOVER request was first received. For example, the DHCPDISCOVER request may first be received by a switch port and the determining step may be performed by one of a DHCP server, an edge services management server, an authentication server and a device dedicated to port configuration.

Some embodiments of the invention provide at least one apparatus for establishing network device port settings. Such embodiments include a port for receiving a DHCPDISCOVER request from a device and at least one logic device configured for determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure the port.

A logic device may examine one or more DHCP options of the DHCPDISCOVER request. The port and the logic device(s) may be included within a single device or may be disposed in separate devices. For example, the port and the logic device(s) may be included within a single switch or a DHCP server.

Alternative embodiments of the invention provide a network device that includes these elements: a plurality of ports; a storage device; and at least one logic device configured to receive a DHCPDISCOVER request from a device via a first port and configure the first port with appropriate configuration parameters for the device.

A logic device may be further configured to forward a copy of the DHCPDISCOVER request to a second device. A logic device may configure the first port according to instructions received from the second device. The second device may be, for example, a DHCP server, an edge services management server, an authentication server or a device dedicated to port configuration.

The methods of the present invention may be implemented, at least in part, by hardware and/or software. For example, some embodiments of the invention provide computer programs embodied in machine-readable media. The computer programs include instructions for controlling one or more devices to perform the methods described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a network diagram illustrating a switch and attached RFID devices.

FIG. 2A illustrates an exemplary SmartPorts™ macro.

FIG. 2B illustrates an exemplary set of commands to be used for configuring a port according to a SmartPorts™ macro.

FIG. 3A is a flow chart that provides an overview of a method of the present invention.

FIG. 3B is a network diagram that illustrates an implementation of the method outlined in FIG. 3A.

FIG. 4 is a flow chart that provides an overview of an alternative method of the present invention.

FIG. 5 is a block diagram that illustrates a network device for implementing some aspects of the invention.

FIG. 6 is a block diagram that illustrates another network device for implementing some aspects of the invention.

DETAILED DESCRIPTION OF THE INVENTION

In this application, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order not to obscure the present invention.

Although the present invention involves methods and devices for identifying and provisioning individual RFID devices in a network, many aspects of the present invention can be applied to identifying and provisioning other types of devices in a network. Similarly, although much of the discussion herein applies to implementations using the DHCP protocol, the present invention is not protocol-specific and may be used, for example, in implementations using UPnP, 802.1ab or similar discovery protocols. Likewise, while the implementations described herein refer to exemplary DHCP Options, other DHCP Options may advantageously be used to implement the present invention.

Similarly, while some exemplary implementations of the invention involve using the SmartPorts™ “macro” functionality for configuring ports of network devices, other such tools could be used. In other implementations of the invention, a command line interface (“CLI”) or another programmatic interface such as Simple Network Management Protocol (“SNMP”) or Netconf® is used for this purpose.

Prior implementations of SmartPorts™ macros required users to manually identify connection types (e.g., RFID, manufacturing, IPphone) and then to configure a network device according to the identified connection type. As used herein, the term “macro” will sometimes be used to mean both the commands used to configure, e.g., a port of a network device and a configuration resulting from the application of such a macro. The network device could be configured, for example, using a command line interface or a network management tool such as CMS on a per-port basis.

An exemplary Cisco SmartPorts™ macro for configuring a port for an RFID device will now be described with reference to FIG. 2A. Line 201 is used to establish the macro's name, which in this case is RFID_Macro1. It is helpful to use a name that is easy to recognize as one type of macro for RFID devices, to allow for the possibility of having macros for multiple device types and multiple macros for RFID devices.

Line 203 will cause an RFID VLAN to be assigned and line 205 puts a switch port in “access” mode. Line 207 assigns a generic description to the interface indicating its use, which is a connection to an RFID device in this example. Lines 209 enable port security and limit the port to a single media access control (“MAC”) address.

According to line 211, when the maximum number of MAC addresses is exceeded, traffic from additional source MAC addresses are dropped. In addition, an SNMP trap and a syslog message are generated. Lines 213 cause the secure MAC address to age out after 10 minutes of inactivity.

Lines 215 configure the port as an edge device port that does not need to behave according to a spanning tree protocol. Accordingly, bridge port data unit (“BPDU”) packets are not be allowed to enter the network from this port. “Spanning-tree portfast” allows the port to move into the forwarding state quickly.

Lines 217 set broadcast and multicast storm control limits to 20% of the interface bandwidth. As with other settings in this example, this limit should be based upon the anticipated requirements of the device to be in communication with the port. Line 219 applies a rate limiting of DHCP packets coming from the device to 100 packets per second.

Line 221 is one example of a QoS for the device. This QoS is applicable, for example, if the device is an RFID reader that sends packets marked with DSCP and if these values should be trusted.

FIG. 2B sets forth one example of how to apply the previously-described SmartPorts macro to a switch port. FIG. 2B is a screen capture of a CLI session for configuring a port. Line 251 identifies the switch to be configured (“DC_Switch1”). Line 255 is a prompt from switch DC_Switch1. Line 260 configures the interface as a Fast Ethernet interface.

Line 265 applies a selected macro, which is “RFID_Macro1” in this example, to the interface. The example assumes that VLAN 30 has previously been configured as the RFID VLAN. Line 270 is a command prompt from switch DC_Switch1.

Referring back to FIG. 1, for example, in order to configure port 120 using prior implementations of SmartPorts, a user (e.g., a network administrator) would need to manually go into every port, select a macro for each device (if one exists) and apply the appropriate macro to the port to which the device is connected. For example, the user would need to determine the appropriate port configuration for a connection with RFID reader 110, determine whether a macro exists for this configuration, and, if so, apply the appropriate macro to configure port 120. If no such macro existed, each attribute of the port configuration would need to be separately indicated.

Some exemplary implementations of the invention will now be described with reference to FIGS. 3A and 3B. FIG. 3A is a flow chart that outlines method 300 according to the invention. FIG. 3B is a simplified network diagram of network 350 that provides one example of how method 300 may be implemented.

Those of skill in the art will appreciate that some steps of the methods discussed herein, including method 300, need not be performed (and in some implementations are not performed) in the order shown. Moreover, some implementations of the methods discussed herein may include more or fewer steps than those shown, e.g., in FIG. 3A.

Similarly, those of skill in the art will appreciate that the elements of FIG. 3B are both simplified and merely illustrative. FIG. 3B illustrates switches 365, 380 and 385, all of which have attached devices. In this example, switch 365 is a Cisco Catalyst 4500 Series switch and switches 380 and 385 are Cisco Catalyst 3750 Series switches. However, one of skill in the art will appreciate that other types of network devices could be used to implement the invention. Moreover, switches 365, 380 and 385 could be in the same location (e.g., in the same warehouse or factory) or could be in different locations. Switches 365, 380 and 385 can communicate with DHCP server 370, host device 390 and storage devices 395 via network 375. Accordingly, network 375 may include portions of one or more private networks and part of the Internet.

The devices attached to switches 365, 380 and 385 are not necessarily all of the same type. In this example, device 355 is an RFID reader and device 357 is an IP telephone. As discussed elsewhere herein, even devices that are of the same general type may have different capabilities and/or different desired functions.

A device that sends out an initiation for an IP address to a DHCP server does so by way of a packet that includes a “DHCPDISCOVER” request. This command includes, inter alia, the media access control (“MAC”) address of the device. RFC 2131 is hereby incorporated by reference.

Accordingly, in step 301 of method 300, device 355 of FIG. 3B initializes and then sends DHCPDISCOVER request 356 to port 360 of switch 365. Switch 365 is configured not only to forward DHCPDISCOVER request 356 to DHCP server 370 via network 375, but also to analyze the contents of DHCPDISCOVER request 356. The steps performed by switch 365 according to method 300 may be controlled by one or more logic devices 368, which is an ASIC in this example. However, logic device(s) 368 could be any convenient logic device(s).

In step 315, switch 365 attempts to identify device 355 according to information in DHCPDISCOVER request 356. In this example, switch 365 applies “snooping” techniques to analyze the contents of Options in DHCPDISCOVER request 356. Switch 365 may, for example, examine the contents of DHCP Option 60 to determine a device type or vendor identifier. RFC 2132 is hereby incorporated by reference. Switch 365 may examine the “Enterprise number” field of DHCP Option 125 to determine the EPCGlobal enterprise number of the device. RFC 3925 is hereby incorporated by reference.

Alternatively, or additionally, switch 365 may examine other DHCP options. For example, switch 365 may examine DHCP Option 150 to identify device 355; this Option is used, for example, by IPPhones provided by Cisco Systems, Inc. R. Johnson's draft “TFTP Server Address DHCP Option” (Network Working Group Feb. 6, 2005) describes relevant information and is hereby incorporated by reference. Switch 365 may examine a “PXE boot” option to determine an appropriate configuration for port 360. M. Johnston's draft “DHCP Preboot execution Environment (PXE) Options” (Dynamic Host Configuration Working Group Jan. 21, 2005) describes relevant information and is hereby incorporated by reference. Switch 365 may examine Option 43 to obtain vendor-specific information regarding device 355. Switch 365 may examine Option 61 to determine an EPC identifier of device 355.

In some implementations, switch 365 also determines an appropriate personality for device 355 in step 315. In some such implementations, switch 365 examines the DHCP Option 77 to determine a device personality. In other implementations, switch 365 can determine an appropriate personality for device 355 indirectly, e.g., by cross-referencing a look-up table or a similar data structure based on other information in DHCPDISCOVER request 356. The look-up table could be stored locally (e.g., in memory 367), on an attached device or on another device that switch 365 can access via network 375, part of which is the Internet in this example.

If switch 365 cannot identify device 355, the process ends in this example (step 340 of FIG. 3A). Alternatively (or additionally), a network administrator could be alerted, e.g., by causing switch 365 to send a message to host device 390.

However, if switch 365 can identify the device, the method proceeds to step 320, wherein switch 365 determines port 360 is already configured. (In the flow chart of FIG. 3A it is presumed that a port configuration (if any) has resulted from the application of a macro, though this need not be the case.)

If port 360 has not yet been configured, it is determined whether there is a configuration macro available (e.g., locally available and stored in memory 367) that is appropriate for device 355. (Step 330.) Table 366 is one exemplary data structure that may be used for such a purpose. Table 366 includes macro field 372, for defining a plurality of configuration macros, each of which corresponds to a device of device ID field 374. Accordingly, a device ID determined as described above with reference to step 315 (or otherwise) can be used to determine whether there is a corresponding macro.

If port 360 is already configured, it is determined in step 325 whether the configuration is suitable for the device identified in step 315. If so, the process ends.

If the port does not have a desired configuration, it is determined in step 330 whether there is an appropriate macro available for the device. If there is an appropriate macro available for the device, the macro is applied (step 335) and then the process ends (step 340). If not, the process ends without a macro being applied. Preferably, a network administrator is notified, e.g., by sending a message from switch 365 to host device 390.

In the preceding example, switch 365 had the intelligence for determining how to automatically configure a port on which a DHCPDISCOVER request is received. The switch itself analyzed the DHCPDISCOVER request and configured the port with an appropriate combination of attributes. These combinations of attributes, along with the necessary software for applying them, were stored in the switch itself.

However, in other implementations of the invention, both the intelligence for determining how appropriately to configure the port and the instructions for so configuring the port may be owned by another device. For example, the intelligence may reside in DHCP server 370, an edge services management server, an authentication server and a device dedicated to port configuration. Some such implementations are illustrated by the flow chart of FIG. 4.

In steps 401 and 405, a device initializes and sends a DHCPDISCOVER request to a switch port. In this example, switch 365 forwards the DHCPDISCOVER request with an indication of the port on which the DHCPDISCOVER request was received. (Step 410.) The port ID could be provided, for example, in DHCP Option 82. Preferably, the switch also forwards information regarding the current port configuration to DHCP server 370.

According to some implementations, DHCP server 370 attempts to identify the device. (Step 412.) If DHCP server 370 can identify the device, DHCP server 370 performs steps 420, 425 and 430, which are analogous to steps 320 through 330 of method 300.

DHCP server 370 then instructs switch 365 to configure the port in an appropriate manner, e.g., by applying a macro. (Step 435.) Macros (or the like) for this purpose could be stored in switch 365, could be sent from DHCP server 370 to switch 365, or could be obtained by switch 365 from another device. For example, DHCP server 370 could send switch 365 a pointer to a memory space wherein such instructions are stored (e.g., in one of storage devices 395).

In other implementations, DHCP server 370 provides an IP address in response to the DHCPDISCOVER request and forwards the DHCPDISCOVER request to another device that performs steps similar to steps 310 through 330. The device could be, e.g., an authentication server or a server that is dedicated to automated port configuration. This device could instruct switch 365 to configure the port in an appropriate manner, e.g., as described above.

Alternatively, DHCP server 370 could perform at least the device and port identification steps. DHCP server 370 could then forward this information to another device that first performs a mapping of device type to desired configuration and then instructs switch 365 to configure port 360 accordingly.

In yet other implementations, a device local to switch 365 performs steps similar to those of steps 315 through 330 and then instructs switch 365 accordingly. For example, a DHCP relay agent in switch 365 is programmed to forward a copy of the DHCPDISCOVER request to another device (e.g., an edge services management server) that performs steps similar to steps 310 through 330, e.g., prior to forwarding the DHCPDISCOVER request to the DHCP server. In such implementations, the DHCP server could behave as a normal DHCP server and switch 365 could lack the intelligence to perform steps 310 through 330. The DHCPDISCOVER request could be forwarded to another device on the local network that performs steps similar to steps 310 through 330.

However, as illustrated in FIG. 5, some embodiments of the invention combine many of the components necessary to implement the invention within a single chassis. Here, chassis 500 is a router that includes switch module 505, with ports 510 that can be configured for appropriately communicating with devices 515. In this example, router 500 also includes DHCP server 520, which may be implemented in software and/or hardware (e.g., as a line card or “blade”). In alternative implementations, DHCP server 520 could be implemented in a separate device that is in communication with router 500.

Instead of being implemented in a router having a switch module, alternative embodiments of the invention provide a chassis 500 that is a switch that runs Layer 3, running IOS. As above, chassis 500 could also include DHCP server 520, implemented in software and/or hardware, or DHCP server 520 could be implemented in a separate device that is in communication with chassis 500.

It will be appreciated by those of skill in the art that other types of devices, including but not limited to point-of-sale devices (e.g., “cash registers”) VoIP telephones and devices used in manufacturing, may be advantageously configured according to the methods of the present invention. For example, one or more defined fields could indicate the type of device, device personality, etc.

In one such example, DHCP Option 60 could indicate that the device is a cash register and DHCP Option 77 could indicate the “personality” of the cash register, e.g., that it is a cash register used by a particular type of restaurant. There could be predefined macros for configuring a switch port appropriately for each type of device, e.g., for a cash register.

FIG. 6 illustrates an example of a network device that may be configured to implement some methods of the present invention. Network device 660 includes a master central processing unit (CPU) 662, interfaces 668, and a bus 667 (e.g., a PCI bus). Generally, interfaces 668 include ports 669 appropriate for communication with the appropriate media.

The interfaces 668 are typically provided as interface cards (sometimes referred to as “line cards” or network interface cards (NICs)) 670. Generally, line cards 670 control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 660. Among the interfaces that may be provided are Fibre Channel (“FC”) interfaces, Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided, such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces, ASI interfaces, DHEI interfaces and the like.

In some embodiments, one or more of line cards 670 includes at least one independent processor 674 and, in some instances, volatile RAM. Independent processors 674 may be, for example ASICs or any other appropriate processors. According to some such embodiments, these independent processors 674 perform at least some of the functions of the logic described herein. In some embodiments, one or more of interfaces 668 control such communications-intensive tasks as media control and management. By providing separate processors for the communications-intensive tasks, line cards allow the master microprocessor 662 efficiently to perform other functions such as routing computations, network diagnostics, security functions, etc.

When acting under the control of appropriate software or firmware, in some implementations of the invention CPU 662 may be responsible for implementing specific functions associated with the functions of a desired network device. According to some embodiments, CPU 662 accomplishes all these functions under the control of software including an operating system (e.g. Linux, VxWorks, etc.), and any appropriate applications software.

CPU 662 may include one or more processors 663 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 663 is specially designed hardware for controlling the operations of network device 660. In a specific embodiment, a memory 661 (such as non-volatile RAM and/or ROM) also forms part of CPU 662. However, there are many different ways in which memory could be coupled to the system. Memory block 661 may be used for a variety of purposes such as, for example, caching and/or storing data, programming instructions, etc.

Regardless of network device's configuration, it may employ one or more memories or memory modules (such as, for example, memory block 665) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example.

Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine-readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.

Although the system shown in FIG. 6 illustrates one specific network device of the present invention, it is by no means the only network device architecture on which the present invention can be implemented. For example, an architecture having a single processor that handles communications as well as routing computations, etc. is often used. Further, other types of interfaces and media could also be used with the network device. The communication path between interfaces/line cards may be bus based (as shown in FIG. 6) or switch fabric based (such as a cross-bar).

Other Embodiments

Although illustrative embodiments and applications of this invention are shown and described herein, many variations and modifications are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those of ordinary skill in the art after perusal of this application. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims. 

1. A method for establishing network device port settings, the method comprising: receiving a DHCPDISCOVER request from a device; and determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of a network device on which the DHCPDISCOVER request was first received.
 2. The method of claim 1, further comprising the step of applying the appropriate macro when it is determined to be available.
 3. The method of claim 1, further comprising the step of determining whether the port has already been configured in a manner appropriate for the device.
 4. The method of claim 1, wherein the determining step comprises determining a device personality.
 5. The method of claim 1, wherein the determining step comprises identifying the device.
 6. The method of claim 1, wherein the determining step comprises examining at least one DHCP option of the DHCPDISCOVER request.
 7. The method of claim 1, wherein the determining step is performed by the network device on which the DHCPDISCOVER request was first received.
 8. The method of claim 1, wherein the determining step is not performed by the network device on which the DHCPDISCOVER request was first received.
 9. The method of claim 1, wherein the DHCPDISCOVER request is first received by a switch port and wherein the determining step is performed by one of a DHCP server, an edge services management server, an authentication server and a device dedicated to port configuration.
 10. An apparatus for establishing network device port settings, the apparatus comprising: a port for receiving a DHCPDISCOVER request from a device; and at least one logic device configured for determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure the port.
 11. An apparatus for establishing network device port settings, the apparatus comprising: means for receiving a DHCPDISCOVER request from a device; and means for determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of a network device on which the DHCPDISCOVER request was first received.
 12. A network for establishing network device port settings, the network comprising: means for receiving a DHCPDISCOVER request from a device; and means for determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of a network device on which the DHCPDISCOVER request was first received.
 13. The network of claim 12, wherein the determining means examines at least one DHCP option of the DHCPDISCOVER request.
 14. The network of claim 12, wherein the receiving means and the determining means are included within a single device.
 15. The network of claim 12, wherein receiving means is part of a first device and the determining means is part of a second device.
 16. The network of claim 14, wherein the single device is one of a switch on which the DHCPDISCOVER request was first received and a DHCP server.
 17. A network device, comprising: a plurality of ports; a storage device; and at least one logic device configured to receive a DHCPDISCOVER request from a device via a first port and configure the first port with appropriate configuration parameters for the device.
 18. The network device of claim 17, wherein a logic device is further configured to forward a copy of the DHCPDISCOVER request to a second device and wherein the logic device configures the first port according to instructions received from the second device.
 19. The network device of claim 18, wherein the second device is a device selected from the group consisting of a DHCP server, an edge services management server, an authentication server and a device dedicated to port configuration. 